package com.example.daiyinuo.composite;

public class TestComposite {
    public static void main(String[] args) {
        Cabinet cabinet = new Cabinet("Tower");
        Chassis chassis = new Chassis("PC Chassis");
        //将PC Chassis 装到Tower中(将盘盒子放到箱子中)
        cabinet.add(chassis);
        //将一个10Gb 的硬盘装到PC Chassis中
        chassis.add(new Disk("10 GB"));
        //调用netPrice方法
        System.out.println("netPrice =="+cabinet.netPrice());
        System.out.println("discountPrice =="+cabinet.disCountPrice());
        //上面调用的方法 netPrice()或 discountPrice()，实际上 Composite 使用 Iterator 遍历了整个树形结构,寻找同样包含这
        //个方法的对象并实现调用执行.
        //Composite 是个很巧妙体现智慧的模式，在实际应用中，如果碰到树形结构，我们就可以尝试是否可以使用这个模式。

    }
}
